﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace DAL
{
    public class NhanVien_DAO
    {
        clsDocSQL m_clsDocSQL = new clsDocSQL();
        protected object Getdatarow(DataTable dt, int dong)
        {
            NhanVien_DTO dto = new NhanVien_DTO();
            dto.Str_MaNV = dt.Rows[dong]["MaNV"].ToString();
            dto.Str_HoTen = dt.Rows[dong]["HoTen"].ToString();
            dto.D_NgaySinh = DateTime.Parse(dt.Rows[dong]["NgaySinh"].ToString());
            dto.Str_DiaChi = dt.Rows[dong]["DiaChi"].ToString();
            dto.Str_DienThoai = dt.Rows[dong]["DienThoai"].ToString();
            dto.Str_Email = dt.Rows[dong]["Email"].ToString();
            dto.Str_CMND = dt.Rows[dong]["CMND"].ToString();
            dto.I_GioiTinh = int.Parse(dt.Rows[dong]["GioiTinh"].ToString());
            dto.Str_TenDangNhap = dt.Rows[dong]["TenDN"].ToString();
            dto.Str_MatKhau = dt.Rows[dong]["MatKhau"].ToString();
            dto.Str_MaLoaiNhanVien = dt.Rows[dong]["LoaiNhanVien"].ToString();
            dto.I_TrangThai = int.Parse(dt.Rows[dong]["TrangThai"].ToString());
            return (object)dto;
        }
        public NhanVien_DTO[] DanhSachNhanVien()
        {
            DataTable dt = m_clsDocSQL.DocSQLStoreProcedure("sp_LayDanhSachNhanVien");
            NhanVien_DTO[] arr;
            arr = new NhanVien_DTO[dt.Rows.Count];
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                object obj = Getdatarow(dt, i);
                arr[i] = (NhanVien_DTO)obj;
            }
            return arr;
        }
        public NhanVien_DTO DanhSachNhanVien_TheoMaNhanVien(String str_MaNhanVien)
        {
            SqlParameter[] m_SqlParameter = new SqlParameter[1];
            m_SqlParameter[0] = new SqlParameter("@MaNhanVien", str_MaNhanVien);
            DataTable dt = m_clsDocSQL.DocSQLStoreProcedure1("sp_LayDanhSachNhanVien_TheoMaNhanVien", m_SqlParameter);
            NhanVien_DTO arr = new NhanVien_DTO();
            object tg = Getdatarow(dt, 0);
            arr = (NhanVien_DTO)tg;
            return arr;
        }
        public String MaNhanVienTang()
        {
            String kq = "";
            kq = m_clsDocSQL.DocKieuString("Ma_NhanVien_Tang");
            return kq.ToString();
        }
        public int ThemNhanVien(NhanVien_DTO dto)
        {
            SqlParameter[] m_SqlParameter = new SqlParameter[13];
            m_SqlParameter[00] = new SqlParameter("@MaNhanVien", dto.Str_MaNV);
            m_SqlParameter[01] = new SqlParameter("@HoTen", dto.Str_HoTen);
            m_SqlParameter[02] = new SqlParameter("@NgaySinh", dto.D_NgaySinh);
            m_SqlParameter[03] = new SqlParameter("@DiaChi", dto.Str_DiaChi);
            m_SqlParameter[04] = new SqlParameter("@DienThoai", dto.Str_DienThoai);
            m_SqlParameter[05] = new SqlParameter("@Email", dto.Str_Email);
            m_SqlParameter[06] = new SqlParameter("@CMND", dto.Str_CMND);
            m_SqlParameter[07] = new SqlParameter("@GioiTinh", dto.I_GioiTinh);
            m_SqlParameter[08] = new SqlParameter("@TenDangNhap", dto.Str_TenDangNhap);
            m_SqlParameter[09] = new SqlParameter("@MatKhau", dto.Str_MatKhau);
            m_SqlParameter[10] = new SqlParameter("@MaLoaiNhanVien", dto.Str_MaLoaiNhanVien);
            m_SqlParameter[11] = new SqlParameter("@TrangThai", dto.I_TrangThai);
            m_SqlParameter[12] = new SqlParameter("@KQ", 0);
            m_SqlParameter[12].Direction = ParameterDirection.Output;
            int KQ = m_clsDocSQL.Insert_Delete_Update("sp_ThemNhanVien", m_SqlParameter);
            return KQ;
        }
        public int XoaNhanVien(NhanVien_DTO dto)//
        {
            SqlParameter[] m_SqlParameter = new SqlParameter[2];
            m_SqlParameter[0] = new SqlParameter("@MaNhanVien", dto.Str_MaNV);
            m_SqlParameter[1] = new SqlParameter("@KQ", 0);
            m_SqlParameter[1].Direction = ParameterDirection.Output;
            int kq = m_clsDocSQL.Insert_Delete_Update("sp_XoaNhanVien", m_SqlParameter);
            return kq;
        }

        public int CapNhatNhanVien(NhanVien_DTO dto)
        {
            SqlParameter[] m_SqlParameter = new SqlParameter[13];
            m_SqlParameter[00] = new SqlParameter("@MaNhanVien", dto.Str_MaNV);
            m_SqlParameter[01] = new SqlParameter("@HoTen", dto.Str_HoTen);
            m_SqlParameter[02] = new SqlParameter("@NgaySinh", dto.D_NgaySinh);
            m_SqlParameter[03] = new SqlParameter("@DiaChi", dto.Str_DiaChi);
            m_SqlParameter[04] = new SqlParameter("@DienThoai", dto.Str_DienThoai);
            m_SqlParameter[05] = new SqlParameter("@Email", dto.Str_Email);
            m_SqlParameter[06] = new SqlParameter("@CMND", dto.Str_CMND);
            m_SqlParameter[07] = new SqlParameter("@GioiTinh", dto.I_GioiTinh);
            m_SqlParameter[08] = new SqlParameter("@TenDangNhap", dto.Str_TenDangNhap);
            m_SqlParameter[09] = new SqlParameter("@MatKhau", dto.Str_MatKhau);
            m_SqlParameter[10] = new SqlParameter("@MaLoaiNhanVien", dto.Str_MaLoaiNhanVien);
            m_SqlParameter[11] = new SqlParameter("@TrangThai", dto.I_TrangThai);
            m_SqlParameter[12] = new SqlParameter("@KQ", 0);
            m_SqlParameter[12].Direction = ParameterDirection.Output;
            int KQ = m_clsDocSQL.Insert_Delete_Update("sp_CapNhatNhanVien", m_SqlParameter);
            return KQ;
        }
    }
}
